home *** CD-ROM | disk | FTP | other *** search
/ Kit PC World De Ampliacion De Windows 95 / Kit PC World de ampliacion de Windows 95.iso / clarion / 3rdparty / tools / toolcrft / tcpopup.tpw < prev    next >
Encoding:
Text File  |  1995-10-23  |  9.2 KB  |  252 lines

  1. #!---------------------------------------------------------!
  2. #!                                                         !
  3. #! Copyright 1994 by ToolCraft Development Corporation     !
  4. #!                                                         !
  5. #!                  ALL RIGHTS RESERVED                    !
  6. #!                                                         !
  7. #!---------------------------------------------------------!
  8. #!
  9. #!
  10. #!=============================================================================!
  11. #!                                                                             !
  12. #! Extention for Global Declarations needed to use Power Popup                 !
  13. #!                                                                             !
  14. #!=============================================================================!
  15. #EXTENSION(PowerPopupLib, 'ToolCraft Power Popup Global Declarations' ),APPLICATION,LAST,HLP('~PowerPopupLib')
  16. #DISPLAY('')
  17. #DISPLAY('This extension adds the Power Popupup Library and ')
  18. #DISPLAY('its function prototypes to your application. It is')
  19. #DISPLAY('required before you can add any Popup Menus to')
  20. #DISPLAY('windows in your application.  For more details')
  21. #DISPLAY('see the on-line help.')
  22. #DISPLAY('')
  23. #!------------------------------------------------------------------------
  24. #AT(%CustomGlobalDeclarations)
  25. #IF(%Target32)
  26.   #IF(%ApplicationLocalLibrary)
  27.     #PROJECT('TCPOP32L.LIB')
  28.   #ELSE
  29.     #PROJECT('TCPOP32.LIB')
  30.   #ENDIF
  31. #ELSE
  32.   #IF(%ApplicationLocalLibrary)
  33.     #PROJECT('TCPOP16L.LIB')
  34.   #ELSE
  35.     #PROJECT('TCPOP16.LIB')
  36.   #ENDIF
  37. #ENDIF
  38. #ENDAT
  39. #!------------------------------------------------------------------------
  40. #AT(%GlobalMap)
  41. INCLUDE('TCPOPUP.CLW','PopupLibrary')
  42. #ENDAT
  43. #!------------------------------------------------------------------------
  44. #AT(%GlobalData)
  45.  
  46.  
  47.   INCLUDE('TCPOPUP.CLW','PopupGlobals')
  48.  
  49.  
  50. #ENDAT
  51. #!------------------------------------------------------------------------
  52. #!
  53. #!
  54. #EXTENSION(PowerPopupMenu, 'ToolCraft Power Popup Menus' ),PROCEDURE,LAST,HLP('~PowerPopupMenu')
  55. #BUTTON('Popup Menus'),AT(10,,180)
  56. #BOXED('Controls with Popup Menus'),AT(,3)
  57.  #BUTTON('Popup Menu Setup'),MULTI(%PopupMenuControlInstance,%PopupMenuControl & SUB('(Alias)',1,%UsePopupAlias*7)),HLP('~PowerPopupMenu'),INLINE,AT(,15)
  58.    #PROMPT('Control to Create Menu On:',CONTROL),%PopupMenuControl
  59.    #PROMPT('',CHECK),%UsePopupAlias
  60.    #DISPLAY('Define Popup Menu Alias:'),AT(,17)
  61.    #BOXED,WHERE(%UsePopupAlias)
  62.      #ENABLE(%UsePopupAlias),CLEAR
  63.        #PROMPT('Alias Popup Control From:',@S40),%AliasPopupControlFrom,PROMPTAT(10,35),AT(100,35,90)
  64.        #VALIDATE(%AliasPopupControlFrom,'Field Equate or Field Number Must be Entered for From Value')
  65.        #PROMPT('Alias Popup Control Thru:',@S40),%AliasPopupControlThru,PROMPTAT(10,47),AT(100,47,90)
  66.      #ENDENABLE
  67.    #ENDBOXED
  68.    #BOXED,WHERE(NOT %UsePopupAlias)
  69.      #BUTTON('Popup Menu Item'),MULTI(%PopupMenuInstance,%PopupMenuItemType & '  '  &  %PopupMenuItem),HLP('~PowerPopupMenuItems'),INLINE,AT(,35)
  70.        #PROMPT('Menu Item Type:',DROP('ITEM|CHECK|SEPARATOR|SUBMENU|ENDSUBMENU')),%PopupMenuItemType,DEFAULT('ITEM')
  71.        #ENABLE(%PopupMenuItemType = 'ITEM' OR %PopupMenuItemType = 'CHECK'),CLEAR
  72.          #PROMPT('Menu Item Text:',@S100),%PopupMenuItem
  73.          #PROMPT('Menu Item Equate:',@S50),%PopupMenuItemEquate
  74.          #PROMPT('Action when Pressed:',DROP('No Special Action|Execute an Instruction|Call a Procedure|Call with Thread Manager|Run a Program')),%PopupMenuAction,DEFAULT('No Special Action'),PROMPTAT(,49),AT(,49)
  75.          #BOXED,WHERE(%PopupMenuAction = 'Execute an Instruction')
  76.            #DISPLAY(''),AT(,55)
  77.            #PROMPT('Instruction to Execute:',@S255),%PopupMenuExecute
  78.          #ENDBOXED
  79.          #BOXED,WHERE(%PopupMenuAction = 'Call a Procedure')
  80.            #DISPLAY(''),AT(,55)
  81.            #PROMPT('Procedure Name:',PROCEDURE),%PopupMenuProcedure
  82.            #PROMPT('Initiate Thread:',CHECK),%PopupMenuThread
  83.            #ENABLE(%PopupMenuThread = %True)
  84.              #PROMPT('Thread Stack:',SPIN(@n7,5000,64000,500)),%PopupMenuThreadStack,DEFAULT(25000)
  85.            #ENDENABLE
  86.            #ENABLE(%PopupMenuThread = %False),CLEAR
  87.              #PROMPT('Parameters:',@s80),%PopupMenuParameters
  88.            #ENDENABLE
  89.          #ENDBOXED
  90.          #BOXED,WHERE(%PopupMenuAction = 'Call with Thread Manager')
  91.            #DISPLAY(''),AT(,55)
  92.            #PROMPT('Procedure Name:',PROCEDURE),%TMPopupMenuProcedure
  93.            #PROMPT('Thread Stack:',SPIN(@n7,5000,64000,500)),%TMPopupMenuThreadStack,DEFAULT(25000)
  94.            #PROMPT('Maximum Instances:',SPIN(@n2,1,40,1)),%TMPopupMaxInstances,DEFAULT(1)
  95.          #ENDBOXED
  96.          #BOXED,WHERE(%PopupMenuAction = 'Run a Program')
  97.            #DISPLAY(''),AT(,55)
  98.            #PROMPT('Program Name:',@S40),%PopupMenuRunName
  99.            #PROMPT('Parameters:',@s40),%PopupMenuRunParameters
  100.          #ENDBOXED
  101.        #ENDENABLE
  102.      #ENDBUTTON
  103.    #ENDBOXED
  104.  #ENDBUTTON
  105. #ENDBOXED
  106. #ENDBUTTON
  107. #! 
  108. #!------------------------------------------------------------------------
  109. #AT(%DataSectionBeforeWindow)
  110.  #DECLARE(%PopupMenuItemNumber)
  111.  #SUSPEND
  112. #?
  113.  #FOR(%PopupMenuControlInstance),WHERE(NOT %UsePopupAlias)
  114.    #CLEAR(%PopupMenuItemNumber)
  115.    #SUSPEND
  116. #?
  117. #?!*** Field Equates for %PopupMenuControl Popup Menu Items ***
  118.    #FOR(%PopupMenuInstance)
  119.      #CASE(%PopupMenuItemType)
  120.      #OF('SUBMENU')
  121.      #OROF('ENDSUBMENU')
  122.        #CYCLE
  123.      #ENDCASE
  124.      #SET(%PopupMenuItemNumber,%PopupMenuItemNumber+1)
  125.      #IF(%PopupMenuItemEquate)
  126. %[25]PopupMenuItemEquate EQUATE(%PopupMenuItemNumber)
  127.      #ENDIF
  128.    #ENDFOR
  129.    #RESUME
  130.  #ENDFOR
  131. #?
  132. #?
  133.  #RESUME
  134. #ENDAT
  135. #!
  136. #!
  137. #!------------------------------------------------------------------------
  138. #AT(%WindowEventHandling,'OpenWindow')
  139.  #DECLARE(%ContinueLineFlag)
  140.  #DECLARE(%CreatePopupParm)
  141.  #DECLARE(%ItemDelimeter)
  142.  #FOR(%PopupMenuControlInstance),WHERE(NOT %UsePopupAlias)
  143.    #CLEAR(%ContinueLineFlag)
  144.    #CLEAR(%ItemDelimeter)
  145.    #CLEAR(%CreatePopupParm)
  146.    #FOR(%PopupMenuInstance)
  147.      #CASE(%PopupMenuItemType)
  148.      #OF('ITEM')
  149.        #SET(%CreatePopupParm,%CreatePopupParm & %ItemDelimeter & %PopupMenuItem)
  150.      #OF('CHECK')
  151.        #SET(%CreatePopupParm,%CreatePopupParm & %ItemDelimeter & %PopupMenuItem & '%CHK')
  152.      #OF('SEPARATOR')
  153.        #SET(%CreatePopupParm,%CreatePopupParm & %ItemDelimeter & '-')
  154.      #OF('SUBMENU')
  155.        #SET(%CreatePopupParm,%CreatePopupParm & %ItemDelimeter & '[')
  156.        #SET(%ItemDelimeter,'')
  157.        #CYCLE
  158.      #OF('ENDSUBMENU')
  159.        #SET(%CreatePopupParm,%CreatePopupParm & ']')
  160.      #ENDCASE
  161.      #SET(%ItemDelimeter,'|')
  162.      #IF(LEN(%CreatePopupParm) > 125)
  163.         #IF(NOT %ContinueLineFlag)
  164.           #SET(%ContinueLineFlag,%TRUE)
  165. CreatePopup(%PopupMenuControl,'%CreatePopupParm' & |
  166.         #ELSE
  167.             '%CreatePopupParm' & |
  168.         #ENDIF
  169.        #CLEAR(%CreatePopupParm)
  170.      #ENDIF
  171.    #ENDFOR
  172.    #IF(NOT %ContinueLineFlag)
  173. CreatePopup(%PopupMenuControl,'%CreatePopupParm')
  174.    #ELSE
  175.             '%CreatePopupParm')
  176.    #ENDIF
  177.  #ENDFOR
  178.  #FOR(%PopupMenuControlInstance),WHERE(%UsePopupAlias)
  179.    #IF(%AliasPopupControlThru)
  180. AliasPopup(%PopupMenuControl,%AliasPopupControlFrom,%AliasPopupControlThru)
  181.    #ELSE
  182. AliasPopup(%PopupMenuControl,%AliasPopupControlFrom)
  183.    #ENDIF
  184.  #ENDFOR
  185. #EMBED(%AfterPopupMenuCreation,'After Popup Menus are Created')
  186. #ENDAT
  187. #!
  188. #!
  189. #!------------------------------------------------------------------------
  190. #AT(%ControlOtherEventHandling)
  191.   #FOR(%PopupMenuControlInstance),WHERE(%PopupMenuControl=%Control AND NOT %UsePopupAlias)
  192.     #SUSPEND
  193. #?IF EVENT() = POPUP:EVENT:Accepted
  194.   #?CASE POPUP:Choice
  195.     #CLEAR(%ValueConstruct)
  196.     #FOR(%PopupMenuInstance)
  197.       #CASE(%PopupMenuItemType)
  198.       #OF('SUBMENU')
  199.       #OROF('ENDSUBMENU')
  200.         #CYCLE
  201.       #ENDCASE
  202.       #SET(%ValueConstruct,%ValueConstruct+1)
  203.       #SUSPEND
  204.       #IF(%PopupMenuItemEquate)
  205.   #?OF %PopupMenuItemEquate
  206.       #ELSE
  207.   #?OF %ValueConstruct
  208.       #ENDIF
  209.       #CASE(%PopupMenuAction)
  210.       #OF('Execute an Instruction')
  211.     %PopupMenuExecute
  212.       #OF('Call a Procedure')
  213.         #IF(%PopupMenuProcedure)
  214.           #IF(%PopupMenuThread)
  215.     IF START(%PopupMenuProcedure,%PopupMenuThreadStack).
  216.           #ELSE
  217.     %PopupMenuProcedure %PopupMenuParameters
  218.           #ENDIF
  219.         #ENDIF
  220.     LocalRequest = OriginalRequest
  221.         #IF(%ProcedureTemplate <> 'PowerBrowse')
  222.     DO RefreshWindow
  223.         #ENDIF
  224.       #OF('Call with Thread Manager')
  225.     FREE(QTM); CLEAR(QTM)
  226.     IF TmQuery(QTM,'%TMPopupMenuProcedure') => %TMPopupMaxInstances
  227.       GET(QTM,1)
  228.       POST(EVENT:Restore,,QTM:Id)
  229.     ELSE
  230.       IF START(%TMPopupMenuProcedure,%TMPopupMenuThreadStack).
  231.     END
  232.     FREE(QTM); CLEAR(QTM)
  233.     LocalRequest = OriginalRequest
  234.         #IF(%ProcedureTemplate <> 'PowerBrowse')
  235.     DO RefreshWindow
  236.         #ENDIF
  237.       #OF('Run a Program')
  238.     RUN('%PopupMenuRunName %PopupMenuRunParameters')
  239.     LocalRequest = OriginalRequest
  240.         #IF(%ProcedureTemplate <> 'PowerBrowse')
  241.     ForceRefresh = True
  242.     DO RefreshWindow
  243.         #ENDIF
  244.       #ENDCASE
  245.       #RESUME
  246.    #ENDFOR
  247.   #?END
  248.     #RESUME
  249. #?END
  250.   #ENDFOR
  251. #ENDAT
  252.